package com.cy.sentinel;

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

/**
 * @author tang
 * @data 2021/9/22
 * @apiNode
 * 定义一个请求源解析对象，基于此对象对请求中指定数据进行解析
 * 然后sentinel底层会对此接口方法的返回值基于规则的定义进行处理
 */
@Component
public class DefaultRequestOriginParser implements RequestOriginParser {
    @Override
    public String parseOrigin(HttpServletRequest request) {
        //获取请求参数数据,参数名可以自己写
        //http://ip:port/path?origin=app1
        //return request.getParameter("origin");

        //获取访问请求中的ip地址,基于ip地址进行黑白名单设计
        //String ip = request.getRemoteAddr();
        //System.out.println(" ip "+ip);
        //return ip;

        String token = request.getHeader("token");
        return token;
    }
}//授权规则中的黑白名单的值,来自于这个方法的返回值
